﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace TenderSampleApp.Models
{
    public class PersonRequest
    {
        public List<SelectListItem> GetListForDropDown()
        {
            List<SelectListItem> list = new List<SelectListItem>();
            list.Add(new SelectListItem() { Text = "Паспорт", Value = "Паспорт" });
            return list;
        }
        public List<SelectListItem> GetListYearsOfBirthday()
        {
            List<SelectListItem> list = new List<SelectListItem>();
            int year = 1910;
            while (year != DateTime.Now.Year)
            {
                list.Add(new SelectListItem() { Text = year.ToString(), Value = year.ToString() });
                year++;
            }
          
            return list;
        }
 
        #region VAT Firm Info
        public List<VAT> ListVatFirm { get {return new DAL().GetVatFrimInfo(); } }
        
        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Згідно з публікацією")]
        public string VATCode { get; set; }

        [DisplayName("Назва:")]
        [DataType(DataType.MultilineText)]
        public string VATFirmName { get; set; }

        [DisplayName("Адресса:")]
        [DataType(DataType.MultilineText)]
        public string VATAddress { get; set; }
        #endregion

        #region Person Info
        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Прізвище")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonLastName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "Ім'я")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonName { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        [Display(Name = "По батькові")]
        [StringLength(50, ErrorMessage = "Довжина не більше 50 символів")]
        public string PersonSurname { get; set; }

        [DisplayName("Посвідчення")]
        public string PersonСertificate { get; set; }//удостовирение

        [Display(Name = "Серія")]
        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonSeriesСertificate { get; set; }

        [Display(Name = "№")]
        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonNumberСertificate { get; set; }

        [Display(Name = "Посвічення особі видане")]
        [DataType(DataType.Date)]
        [Required(ErrorMessage = "Обов'язкове поле")]
        public DateTime PersonDateOfIssueСertificate { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonIssuedBy { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public int PersonBirthdayYear { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonPostIndex { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonRegion { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonDistrict { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonCity { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonStreet { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonBuild { get; set; }

        public int? PersonApartment { get; set; }

        [Required(ErrorMessage = "Обов'язкове поле")]
        public string PersonPhoneNumber { get; set; }

        public double PersonCostAcquisition { get; set; }

        public double PersonCostAcquisitionInPercent { get; set; }
        #endregion

        #region Representative Of The Buyer
        public string AgentLastName { get; set; }
        public string AgentName { get; set; }
        public string AgentSurname { get; set; }
        [DisplayName("Посвідчення")]
        public string AgentСertificate { get; set; }//удостовирение
        public string AgentSeriesСertificate { get; set; }
        public string AgentNumberСertificate { get; set; }
        [DataType(DataType.Date)]
        public DateTime AgentDateOfIssueСertificate { get; set; }
        public string AgentIssuedBy { get; set; }
        public string AgentPostIndex { get; set; }
        public string AgentRegion { get; set; }
        public string AgentDistrict { get; set; }
        public string AgentCity { get; set; }
        public string AgentStreet { get; set; }
        public string AgentBuild { get; set; }
        public string AgentApartment { get; set; }
        public string AgentPhoneNumber { get; set; }
        public string DocumentOfConfirm { get; set; }
        [DataType(DataType.Date)]
        public DateTime DateDocumentOfConfirm { get; set; }
        #endregion

        #region Bank Info
        public string ExpenseOfCustomer { get; set; }
        public string MFO { get; set; }
        [Required(ErrorMessage = "Обов'язкове поле")]
        public string BankName { get; set; }
        public int Summ { get; set; }
        public string SumName { get; set; }
        #endregion
        public string RequestNumber { get { return RequestNumberRegion + RequestNumberPPZ + RequestNumberAuction + RequestNumberRegistrator + RequestNumberNumber; } }
        public string RequestNumberRegion { get; set; }
        public string RequestNumberPPZ { get; set; }
        public string RequestNumberAuction { get; set; }
        public string RequestNumberRegistrator { get; set; }
        public string RequestNumberNumber { get; set; } 
    }
}
